package com.jessechanrui.template.pdfbox;

import com.jessechanrui.template.FileUtil;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType0Font;

import java.io.File;
import java.io.IOException;

public class PdfBoxTest {
    public static void main(String[] args) {
        // 创建文档对象
        try (PDDocument document = new PDDocument()) {
            // 添加页面
            PDPage page = new PDPage();
            document.addPage(page);

            // 加载字体（支持中文）
            PDType0Font font = PDType0Font.load(document, new File(FileUtil.getBaseDir(), "fonts/simhei.ttf"));

            // 创建内容流
            try (PDPageContentStream contentStream = new PDPageContentStream(document, page)) {
                // 设置字体和大小
                contentStream.setFont(font, 12);

                // 开始文本模式
                contentStream.beginText();

                // 设置文本位置（x, y坐标）
                contentStream.newLineAtOffset(50, 700);

                // 添加文本
                contentStream.showText("Hello, PDFBox!");
                contentStream.newLineAtOffset(0, -20); // 换行
                contentStream.showText("这是一个使用PDFBox创建的PDF文档");

                // 结束文本模式
                contentStream.endText();
            }

            // 保存文档
            document.save(new File(FileUtil.getOutDir(), "pdf_test.pdf"));
            System.out.println("PDF创建成功！");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
